Add suspend_cancel flag to linux elf notes.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Wed, 28 Feb 2007 09:41:02 +0000 (09:41 +0000)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Wed, 28 Feb 2007 09:41:02 +0000 (09:41 +0000)
Signed-off-by: Brendan Cully <brendan@cs.ubc.ca>
linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S
linux-2.6-xen-sparse/arch/x86_64/kernel/head-xen.S
tools/xcutils/readnotes.c
xen/common/libelf/libelf-dominfo.c
xen/include/public/elfnote.h

index d788f323aeab5a5ca86c4b990abe79bc292ac4d4..45b6867b68f9b4ae2df7d25afd85dc71e7950e58 100644 (file)
@@ -206,3 +206,4 @@ ENTRY(cpu_gdt_table)
        ELFNOTE(Xen, XEN_ELFNOTE_L1_MFN_VALID,   .long,  _PAGE_PRESENT,_PAGE_PRESENT)
 #endif
        ELFNOTE(Xen, XEN_ELFNOTE_LOADER,         .asciz, "generic")
+       ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long,  1)
index b7ef0cbcb06850ea34350ad71f104c0c293607f2..3619988fa49e9d30a040532309e1360a3f00b76c 100644 (file)
@@ -186,3 +186,4 @@ ENTRY(empty_zero_page)
        ELFNOTE(Xen, XEN_ELFNOTE_L1_MFN_VALID,   .quad,  _PAGE_PRESENT,_PAGE_PRESENT)
        ELFNOTE(Xen, XEN_ELFNOTE_FEATURES,       .asciz, "writable_page_tables|writable_descriptor_tables|auto_translated_physmap|pae_pgdir_above_4gb|supervisor_mode_kernel")
        ELFNOTE(Xen, XEN_ELFNOTE_LOADER,         .asciz, "generic")
+       ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long,  1)
index b445a73837bc832e7bab984907cbc93ed3a2fb35..4ba53819c55c77272a7b3fe54b10878c17bf752b 100644 (file)
@@ -103,6 +103,9 @@ static int print_notes(struct elf_binary *elf, const elf_note *start, const elf_
                case XEN_ELFNOTE_HV_START_LOW:
                        print_numeric_note("HV_START_LOW", elf , note);
                        break;
+               case XEN_ELFNOTE_SUSPEND_CANCEL:
+                       print_numeric_note("SUSPEND_CANCEL", elf, note);
+                       break;
                case XEN_ELFNOTE_L1_MFN_VALID:
                        print_l1_mfn_valid_note("L1_MFN_VALID", elf , note);
                        break;
index 85a82f3bf5b391d2f38abcc444f890afc4899e5b..eedf970753f4f96622fb3c7126a2ca73b407f11c 100644 (file)
@@ -99,6 +99,7 @@ int elf_xen_parse_note(struct elf_binary *elf,
         [XEN_ELFNOTE_PAE_MODE] = { "PAE_MODE", 1},
         [XEN_ELFNOTE_FEATURES] = { "FEATURES", 1},
         [XEN_ELFNOTE_BSD_SYMTAB] = { "BSD_SYMTAB", 1},
+        [XEN_ELFNOTE_SUSPEND_CANCEL] = { "SUSPEND_CANCEL", 0 },
     };
 /* *INDENT-ON* */
 
index 99f77593d3ad515f38e09c4bcfd3cbd2ca4e61bc..77be41bb4b31aa4fc9b48e21c02367480dd9e245 100644 (file)
  */
 #define XEN_ELFNOTE_L1_MFN_VALID  13
 
+/*
+ * Whether or not the guest supports cooperative suspend cancellation.
+ */
+#define XEN_ELFNOTE_SUSPEND_CANCEL 14
+
 /*
  * The number of the highest elfnote defined.
  */
-#define XEN_ELFNOTE_MAX XEN_ELFNOTE_L1_MFN_VALID
+#define XEN_ELFNOTE_MAX XEN_ELFNOTE_SUSPEND_CANCEL
 
 /*
  * System information exported through crash notes.